package org.example.memora.common.utils;


import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 用来从文本中提取 #标签# 的工具类
 */
@Component
public class TagExtractor {

    // 正则匹配 #任意字符#
    private static final Pattern PATTERN = Pattern.compile("#(.*?)#");

    /**
     * @param content 用户输入的文本，如 "我在#操场#拍到#晚霞#了"
     * @return 提取到的标签名 ["操场","晚霞"]
     */
    public static List<String> extractTagsFromContent(String content) {
        List<String> result = new ArrayList<>();
        if (!StringUtils.hasText(content)) {
            return result;
        }
        Matcher matcher = PATTERN.matcher(content);
        while (matcher.find()) {
            String tagName = matcher.group(1); // group(0)是含#的整体, group(1)是中间的内容
            if (StringUtils.hasText(tagName)) {
                result.add(tagName.trim());
            }
        }
        return result;
    }
}

